<?php

class CredencialController extends Controller
{
	public function accessRules()
	{
		return array(			
			array('allow', // allow admin user to perform 'admin' and 'delete' actions
				'actions'=>array('imprimir','imprimirIds','imprimirPaisDeporte','pais','ids','funcion'),
				'users'=>Yii::app()->getModule('user')->getAdmins(),
			),
			array('deny',  // deny all users
				'users'=>array('*'),
			),
		);
	}
	
	public function actionFuncion()
	{
		$this->render('formFuncion');
	}
	
	public function actionPais()
	{
		$this->render('formPais');
	}
	
	public function actionIds()
	{
		$this->render('formid');
	}
	
	public function actionImprimirPaisDeporte()
	{
		$pais = Yii::app()->request->getQuery('pais');
		$deporte = Yii::app()->request->getQuery('deporte');						
		
		if(!empty($pais)&&!empty($deporte))
		{
			$connection = Yii::app()->db;			
			
			$command = $connection->createCommand("			   
			SELECT gin.inscripcion_nominal_id,gp.persona_id,gc.categoria_id,gp.persona_nombre_credencial,gc.categoria_descripcion,
        	gca.categoria_aplica,gu.pais_iso,gda.deporte_actividad_observacion,gin.inscripcion_nominal_foto,gu.pais_iso,gp.persona_nombres_apellidos,
        	gp.persona_numero_identificacion
        	
		    FROM grid_inscripcion_nominal gin 
		    
		    inner join grid_persona gp 
		    on gin.inscripcion_nominal_persona = gp.persona_id
		    
		    inner join grid_categoria_aplica gca
		    on gca.categoria_aplica_id = gin.inscripcion_nominal_aplica
		    
		    inner join grid_deporte_actividad gda
		    on gda.deporte_actividad_id = gin.inscripcion_nominal_deporte_actividad
		    
		    inner join grid_users gu
		    on gu.id=gp.user_id
		    
		    inner join grid_categoria gc
		    on gc.categoria_id=gin.inscripcion_nominal_categoria
		    where gu.pais_iso = '$pais' and gda.deporte_actividad_observacion='$deporte' and gin.inscripcion_nominal_estado='APROBADO'");// and gin.inscripcion_nominal_estado='APROBADO'");

			$dataReader = $command->query();
				
			$rows=$dataReader->readAll();

			$arrayRedirect= array('/credencial/imprimir','d'=>count($rows));
			$i=-1;
			
			foreach ($rows as $row){	
				$i++;					
						$command = $connection->createCommand("
						   UPDATE grid_inscripcion_nominal SET inscripcion_nominal_estado='ACREDITADO',credencial_generada=credencial_generada+1 WHERE inscripcion_nominal_id=".$row['inscripcion_nominal_id'].";");
						$command->query();	
						$arrayRedirect = $this->array_push_assoc($arrayRedirect, 'd'.$i, $row['inscripcion_nominal_id']);
				
			}
			
			$this->redirect($arrayRedirect);
		}
		else
			$this->redirect('credencial/pais');
			
	}
	
public function array_push_assoc($array, $key, $value){
		$array[$key] = $value;
		return $array;
	}
	

	public function actionImprimirIds()
	{
		$numeroParametros = Yii::app()->request->getQuery('d');
		$connection = Yii::app()->db;
			
		if(!empty($numeroParametros))
		{
			$criteria="";
			
			for ($i = 0; $i < $numeroParametros; $i++) {
	
				if(Yii::app()->request->getQuery("d$i")!="")
				{
					$criteria.="gin.inscripcion_nominal_id = ".Yii::app()->request->getQuery("d$i");
		
					$command = $connection->createCommand("
						   UPDATE grid_inscripcion_nominal SET inscripcion_nominal_estado='ACREDITADO',credencial_generada=credencial_generada+1 WHERE inscripcion_nominal_id=".Yii::app()->request->getQuery("d$i").";");
						$command->query();	
					
					
					//Pregunta si es el último registro para no colocar el OR en el QUERY
					if($i!=$numeroParametros-1)
					$criteria.=" or ";
				}
			}				
	
			
			//TODO: Recibir IDs
			
				$connection = Yii::app()->db;
				
				$command = $connection->createCommand("			   
				SELECT gin.inscripcion_nominal_id,gp.persona_id,gc.categoria_id,gp.persona_nombre_credencial,gc.categoria_descripcion,
	        	gca.categoria_aplica,gu.pais_iso,gda.deporte_actividad_observacion,gin.inscripcion_nominal_foto,gu.pais_iso,gp.persona_nombres_apellidos,
	        	gp.persona_numero_identificacion
	        	
			    FROM grid_inscripcion_nominal gin 
			    
			    inner join grid_persona gp 
			    on gin.inscripcion_nominal_persona = gp.persona_id
			    
	
			    inner join grid_categoria_aplica gca
			    on gca.categoria_aplica_id = gin.inscripcion_nominal_aplica
			    
			    inner join grid_deporte_actividad gda
			    on gda.deporte_actividad_id = gin.inscripcion_nominal_deporte_actividad
			    
			    inner join grid_users gu
			    on gu.id=gp.user_id
			    
			    inner join grid_categoria gc
			    on gc.categoria_id=gin.inscripcion_nominal_categoria
			    where $criteria
			   ");
				// where gin.inscripcion_nominal_estado='ACREDITADO' and (".$criteria.")");
						    
				$dataReader = $command->query();
					
				$rows=$dataReader->readAll();
														
				$this->renderPartial('imprimir',array('rows'=>$rows));
		}else
			$this->redirect('panel/batchAprobado');
	}
	
	public function actionImprimir()
	{
		$numeroParametros = Yii::app()->request->getQuery('d');
			
		if(!empty($numeroParametros))
		{
			$criteria="";
			
			for ($i = 0; $i < $numeroParametros; $i++) {
	
				if(Yii::app()->request->getQuery("d$i")!="")
				{
					$criteria.="gin.inscripcion_nominal_id = ".Yii::app()->request->getQuery("d$i");
		
					//Pregunta si es el último registro para no colocar el OR en el QUERY
					if($i!=$numeroParametros-1)
					$criteria.=" or ";
				}
			}				
	
			
			//TODO: Recibir IDs
			
				$connection = Yii::app()->db;
				
				$command = $connection->createCommand("			   
				SELECT gin.inscripcion_nominal_id,gp.persona_id,gc.categoria_id,gp.persona_nombre_credencial,gc.categoria_descripcion,
	        	gca.categoria_aplica,gu.pais_iso,gda.deporte_actividad_observacion,gin.inscripcion_nominal_foto,gu.pais_iso,gp.persona_nombres_apellidos,
	        	gp.persona_numero_identificacion
	        	
			    FROM grid_inscripcion_nominal gin 
			    
			    inner join grid_persona gp 
			    on gin.inscripcion_nominal_persona = gp.persona_id
			    
	
			    inner join grid_categoria_aplica gca
			    on gca.categoria_aplica_id = gin.inscripcion_nominal_aplica
			    
			    inner join grid_deporte_actividad gda
			    on gda.deporte_actividad_id = gin.inscripcion_nominal_deporte_actividad
			    
			    inner join grid_users gu
			    on gu.id=gp.user_id
			    
			    inner join grid_categoria gc
			    on gc.categoria_id=gin.inscripcion_nominal_categoria
			    where $criteria
			   ");
				// where gin.inscripcion_nominal_estado='ACREDITADO' and (".$criteria.")");
						    
				$dataReader = $command->query();
					
				$rows=$dataReader->readAll();
														
				$this->renderPartial('imprimir',array('rows'=>$rows));
		}else
			$this->redirect('panel/batchAprobado');
	}

	// Uncomment the following methods and override them if needed
	/*
	public function filters()
	{
		// return the filter configuration for this controller, e.g.:
		return array(
			'inlineFilterName',
			array(
				'class'=>'path.to.FilterClass',
				'propertyName'=>'propertyValue',
			),
		);
	}

	public function actions()
	{
		// return external action classes, e.g.:
		return array(
			'action1'=>'path.to.ActionClass',
			'action2'=>array(
				'class'=>'path.to.AnotherActionClass',
				'propertyName'=>'propertyValue',
			),
		);
	}
	*/
}